The present invention relates to an information processing apparatus and method and a recording medium. In particular, the invention relates to an information processing apparatus and method and a recording medium which allow only programs that were developed by a legitimate program developer to be executed in, for instance, a certain program execution environment.
Java (trademark of Sun Microsystems, Inc. of the U.S.A.) now attracts much attention because it is suitable for the Internet that has spread rapidly in recent years. The term xe2x80x9cJavaxe2x80x9d is used to refer to each of the Java language which is an object-oriented language, a virtual machine (hereinafter referred to as xe2x80x9cJava virtual machinexe2x80x9d where appropriate) that defines a processor architecture suitable for execution of a program (hereinafter referred to as xe2x80x9cJava programxe2x80x9d where appropriate) written in the Java language, and other elements relating to Java, or it is used as a generic term of those. The term xe2x80x9cvirtual machinexe2x80x9d is not intended to represent a case that a single computer virtually behaves to users as if it were a plurality of computers; it means a virtual machine that is assumed in implementing a language processing system.
A Java virtual machine is implemented so as to operate on various kinds of software, OS""s (operating systems), and hardware. On the other hand, a Java program is compiled into binary codes that are constituted of instruction sets of the Java virtual machine. The binary codes can be executed by any hardware in which the Java virtual machine can operate. Therefore, a complied Java program can be executed on various platforms as long as the Java virtual machine operates there.
Based on the fact that a Java program can be executed on any machine once a Java virtual machine is implemented, and other grounds, it is expected that the Java virtual machine will spread to many users. It is also expected that many application programs will be developed and distributed (irrespective of whether they have to be paid for or are free) to many such users.
Under the above circumstances, there may occur a case that a party who has developed and distributed a program execution environment such as a Java virtual machine wants to restrict the distribution of an application program that was developed by a third party and is executed in the program execution environment developed by the former party; for example, the former party may want to permit distribution of application programs to only licensed parties.
On the other hand, in a Java virtual machine, intermediate codes called byte codes (Java codes) that are obtained by compiling a Java program with a Java compiler are interpreted and executed. Java byte codes can be understood relatively easily by discompiling those, which enables reverse engineering for imitation or the like of the program to be performed easily. Therefore, it is necessary to prevent imitation and falsification of application programs by other parties.
The present invention has been made under the above circumstances, and an object to the invention is therefore to make it possible to restrict the execution of a program in a certain program execution environment as well as to prevent imitation and falsification of a program.
According to the invention, there is provided an information processing apparatus which executes a process for executing a program, comprising decoding means for decoding an encrypted version of the program; and executing means for executing the program that is output from the decoding means.
There is also provided an information processing apparatus which executes a program, comprising encrypting means for encrypting a program into encrypted sentences to be decoded into executable codes.
There is also provided an information processing apparatus which executes a process for executing a program, comprising executing means for executing the program; checking means for checking whether the program is an execution-permitted, legitimate one; and supplying means for supplying the executing means with the program that has been affirmed to be a legitimate one by the checking means.
There is further provided an information processing apparatus which executes a program, comprising processing means for processing a program so that the program will be affirmed to be legitimate in the information processing.
According to another aspect of the invention, there is provided an information processing method for executing a process for executing a program, comprising the steps of decoding an encrypted version of the program; and executing the program that is obtained by the decoding step.
There is also provided an information processing method for executing a program, comprising the step of encrypting a program into encrypted sentences to be decoded into codes that can be executed by an information processing apparatus.
There is also provided an information processing method for executing a process for executing a program, comprising the steps of checking whether the program is an execution-permitted, legitimate one; and executing the program only when it is affirmed to be a legitimate one.
There is further provided an information processing method for executing a program, comprising the step of processing a program so that the program will be affirmed to be legitimate in the information processing.
According to a further aspect of the invention, there is provided a recording medium on which a program is recorded, the program being for causing a computer to execute the steps of decoding an encrypted version of a program; and executing the program that is obtained by the decoding step.
There is also provided a recording medium on which a program is recorded, the program being encrypted into encrypted sentences to be decoded into codes that can be executed by the information processing apparatus.
There is also provided a recording medium on which a program is recorded, the program being for causing a computer to execute the steps of checking whether a program is legitimate; and executing the program only when it is affirmed to be legitimate.
There is further provided a recording medium on which a program is recorded, the program having been processed so that the program will be affirmed to be legitimate in the information processing apparatus.